package com.steven.design.Builder_Pattern.factory.simpleFactory;

import com.steven.design.Builder_Pattern.factory.Apple;
import com.steven.design.Builder_Pattern.factory.Fruit;
import com.steven.design.Builder_Pattern.factory.Pear;

/**
 * 生产一个苹果需要很多东西，调用者不需要关注工厂内部是怎么生产的
 * 单一工厂模式下，会导致承载的业务越来越庞大，所以可以进一步使用单一工厂模式
 * 每个工厂负责自己的部分互不影响
 */
public class FruitFactory {
    public Fruit create(String type){
        if("苹果".equals(type)){
            //添加种子
//            AppleSeed appleSeed = new AppleSeed();
            //加水
//            Water water = new Water();
            return new Apple();
        }else if("梨子".equals(type)){
            return new Pear();
        }else {
            throw new IllegalArgumentException("暂时没有这种水果");
        }
    }
    public static void main(String[] args) {
        FruitFactory factory = new FruitFactory();
        Fruit apple = factory.create("苹果");
        Fruit pear = factory.create("梨子");
        apple.eat();
        pear.eat();
    }
}
